Computer controlled position slaved servo labeling system

ABSTRACT

A labeling system employs a multi-processing computer control system for a servo motor which drives a label-carrying web. The system is responsive to the physical position of the labels and the physical position of containers or similar objects to which the labels are applied. The label application motion controller identifies the machine position and performs the mathematical calculations needed to create a piecewise continuous function motion profile required to achieve label contact at a predefined contact point on the surface of each container. Multiple functions may be used to construct a motion profile. which smoothly accelerates the label at a calculated acceleration needed to cause a label to arrive at the defined contact position on a container and to decelerates the carrier web after application. Correction for measured label registration error is provided for. Because the position of the label is based on the position of the container and a motion profile is calculated for each application, a fixed initial staging position of the label prior to application is not needed.

RELATED APPLICATION

[0001] This application is a divisional of co-pending U.S. patentapplication Ser. No. 09/357,018, filed Jul. 19, 1999.

BACKGROUND OF THE INVENTION

[0002] The present invention relates to control of container labelingequipment. More specifically, the invention relates to procedures andapparatus for accurately applying labels, such as pressure sensitivelabels, to containers, utilizing continual monitoring of the absolutepositions of the container and label in order to correctly apply thelabels at high container speeds.

[0003] Currently-used label applicator systems frequently use a type ofmotion control system referred to as “velocity slaving”. Such systemsstart a predefined move of the label initiated by a stimulus and whereinthe velocity of the label is dictated by the ratio-metric velocity ofthe container. The feedback as to the container velocity is generated bya main container-handling portion of the machine. Additionally, the endpoint for the application of the labels carried by a carrier web, to aparticular container may be advanced or retarded based on a registrationstimulus incorporated into the system.

[0004] One example of such a system is that which is described in U.S.Pat. No. 4,294,644. In that patent a servomotor is controlled pursuantto input of information relating to the relative velocities of thecontainer and labels. One important limitation of such systems relatesto the inability of many such systems to accelerate the velocity of aweb carrying the labels to the linear velocity of the containers. Thisproblem is particularly acute with respect to short labels.

[0005] In the '644 patent there is described a control system for aservomotor which is responsive to the rate of feed or speed of thesurface to be labeled as it is advanced to the labeler. One aspect ofthis previous system is to bring the servomotor up to a determined speedwhich is then held constant based on a assumption that conveyor speed isconstant, so that the pulse output derived from a servomotor encoderwill match the pulse output derived from the conveyor encoder. Suchcontrol systems are an essential feature of speed matching, i.e.,“velocity slaving”.

[0006] Another significant limitation of the velocity slaved labelingprocess is due to the fact that it is linear in nature. Such linearityis manifested by the direct speed match between the master encoder andpredictable linear acceleration and deceleration ramps controllingmovement of the labels. By utilizing the linear properties of thevelocity profile, basically a trapezoid, the label placement position isderived. Such devices are limited by the fact that very complexrequirements may be needed to match the label velocity to the containersurface velocity but the master encoder still runs at a constant ratethereby ruling out complex moves. One situation where such applicatorsfail is where the length of the material available to accelerate to thesurface velocity of the container is too short. In this condition thereis a requirement that the label carrier web must first be backed upbefore acceleration begins, which backup move would be a lowacceleration, deceleration move in order to maintain necessary webtension, but a simple velocity slaved servo system cannot perform such afunction. Limitations are also caused due to unusual shapes of somecontainers or due to unusual geometry of the labels which may requirecomplex move profiles, which velocity slaved system cannot perform.

SUMMARY OF THE INVENTION

[0007] It is a principal object of the present invention to provide anew labeling control system which overcomes the foregoing limitations byutilizing a position slaved motion control system. An important aspectof the present invention is to provide a position slaved system whichincorporates sufficient mathematical power to generate the necessarymove profiles to control high speed labeling equipment. Suchmathematical power is provided by the provision of high speedmicroprocessors used in conjunction with appropriate mathematicalalgorithms.

[0008] A further important aspect of the present invention involves theintimate coupling of the slave motion control system, which controls alabel carrier web's position, to the position of the master feedbackdevice, i.e., an encoder or a resolver, and thus to the position of thecontainers. In accordance with this aspect, an ability to offset thecommanded position of the container (or other specific object on acontainer) is provided. This offset, in the form of an electronic signalreceived from a sensing device, identifies the absolute location of thecontainer or object such as a previously applied label, which, ineffect, produces an absolute position independent of the main containerhandling portion of the machine but which is relative to each containeror object on the container. Further, in accordance with this aspect, ahigh precision position control results in the ability to provide verycomplex motion even at speeds of 750 labels per minute. Further, inaccordance with this aspect, the motion of the label-carrying web is notlinear with respect to the position of the master, i.e., the containerhandler. Further, even though accurate label placement cannot bepredicted by means of velocity in complex non-linear situations, the useof position slaving, in accordance with the invention, overcomes thislimitation.

[0009] In accordance with a further aspect of the invention amathematical algorithm is provided for each specific containerconfiguration or shape to allow for the ability to generate complex moveprofiles. In connection with such algorithms the position of the labelcarrier web is related mathematically to the position of each containeras it travels and possibly rotates past the label application head. In ageneral sense the position of the slave carrier web is a function of theposition of the master as follows:

Slave_position=f(master_position)

[0010] The function of the slave web position must be continuousthroughout all master-feedback positions. Therefore, in the case ofmultiple functions, the first derivative of each function at theendpoint must equal the first derivative of the next function at itsstart point. That is, for successive functions f1(i) and f2(i), wherei_(o)<i<i_(f) and i_(f)<i<j_(f) respectively for functions f1(i) andf2(i) we have:$\frac{{{f1}\left( i_{f} \right)}}{i} = \frac{{{f2}\left( i_{f} \right)}}{i}$

[0011] This is adhered to so that a step change in velocity does notoccur which could be detrimental to the label placement and damaging tothe web material.

[0012] Briefly, the invention provides a method of labeling containerswhich includes providing a container handling machine such as conveyorin the case of an inline labeling machine, and a rotary bottle table inthe case of a rotary labeling machine, for successively transportingcontainers past a label application station. The container handlingmachine i.e., “machine base” has an associated position signaling devicesuch as a rotary encoder for providing data in electronic formidentifying the position of the machine. In the preferred embodiment theencoder makes one revolution each time the container handling machinetranslates a distance equal to the center-to center distance betweensuccessive containers. As will be appreciated by those skilled in theare, the encoder could be set to make more than one revolution permachine pitch, if desired.

[0013] A label applicator is driven by a servomotor with said servomotorbeing controlled by a microprocessor-based slave position motioncontroller. The label applicator includes an electronic signal generatoridentifying the motion controller position of each successive labeldispensed by the label applicator.

[0014] A machine base position control or identifying microprocessor isoperatively connected to the label applicator's motion controllingmicroprocessor and to the machine base encoder. An electronic signalgenerator identifying the physical position of the container or objectsuch as a previously applied label on the container surface isoperatively connected to the position control microprocessor. Themachine base position control microprocessor generates signals to thelabel applicator's motion controlling microprocessor that relates theposition of the container to be labeled.

[0015] The label applicator servomotor contains an associated positionidentifying device such as an encoder that provides electronic data tothe motion control microprocessor that relates to servo motor positionand velocity. The motion control microprocessor is operatively connectedto a label applicator servo amplifier, the servo motor encoder and tothe machine base encoder. The label applicator servo amplifier isoperatively connected and provides power to the label applicatorservomotor. The motion control microprocessor generates a move profilefor each successive label, using mathematical algorithms, andelectronically controls the label applicator servo amplifier to vary thetorque applied by the servomotor. Electronic feedback signals from theservo motor encoder and machine encoder to the motion controlmicroprocessor provide the electronic position and velocity feedbackdata needed to control the torque applied by the servo amplifier andservo motor. Typically in accordance with the invention, such signalsare continually generated and processed at a rate of at least once each125th microsecond.

[0016] In accordance with a further aspect of the invention, a hostmicroprocessor generates a pitch based electronic shift register thatcontains information on the labeling processes that need to be performedon a container. The host microprocessor provides the labeling commandsand is operatively connected to a label position motion controlmicroprocessor.

DESCRIPTION OF THE DRAWINGS

[0017]FIG. 1 is a top view of a simplified diagram showing a synchronousinfeed rotary, dual application station pressure sensitive labelingmachine that employs the invention;

[0018]FIG. 2 is a top view of a simplified diagram showing a randominfeed linear or inline, dual application station pressure sensitivelabeling machine that employs the invention;

[0019]FIG. 3a is a top view and

[0020]FIG. 3b is an elevational view of the label application headassemblies shown in FIG. 1 and FIG. 2;

[0021]FIG. 4a is top, 4 b bottom and 4 c elevational view of the servodriven actuator sub assembly shown in FIGS. 3a and 3 b;

[0022]FIG. 5a is a side elevational and front view of an unwind stationsub assembly;

[0023]FIG. 6 is a simplified elevational view of a rotary machine base;

[0024]FIG. 7 is a simplified fragmentary perspective view showing alabel position detector on a rotary-labeling machine;

[0025]FIG. 8 is a simplified overhead view of a container positiondetector on an inline-labeling machine;

[0026]FIG. 9 is a simplified top view of the label transfer contactpoint on a rotary-labeling machine;

[0027]FIG. 10 is a schematic diagram of a positioning servo systemfeedback loop;

[0028]FIG. 11 is a 6 function piecewise continuous function motionprofile plot showing, web position vs. machine position;

[0029]FIG. 12 is a 6 function piecewise continuous function motionprofile plot of, web velocity vs. machine position;

[0030]FIG. 13 shows a plot of the axis velocity vs. master feedbackindex;

[0031]FIG. 14 shows a plot of the axis position vs. master feedbackindex;

[0032]FIG. 15 shows plots of the master feedback index vs. time; and,

[0033]FIG. 16 shows plots of the axis velocity vs. time.

[0034]FIG. 17 is a simplified labeler system functional diagram;

[0035]FIG. 18 is a simplified block functional diagram of an encoderprocessing system, consisting of a hardware processing system, a microprocessor which provides software based encoder signal processing, andan interface to a host system bus; and,

[0036]FIG. 19 is a simplified block diagram of the encoder processinghardware.

DETAILED DESCRIPTION

[0037] A pressure sensitive label application system consists ofequipment that applies pressure sensitive labels which are coated with aadhesive, successively, to the surfaces of a series of containers. Asystem of this invention is capable of supporting at least from 1 to 4label application stations, thus applying from one to four separatelabels to one container or similar object, in independent mode, and twocombinations of the same label on 4 stations in redundant mode. The mostgeneral configuration 20 of this system is shown in FIG. 1. This twolabel application station machine 20 is defined as a synchronous“rotary” machine because the position of each container is governed bythe position of the machine.

[0038] Containers moving down a conveyor 26 are captured and spacedapart by infeed screw 24. Infeed screw 24 is driven by a gear train thatoriginates at the bottle table 32. As a container travels down the feedscrew 24 it is detected by an electronic sensing device, i.e., a “bottlepresent sensor” 25. The infeed screw 24 will transfer containers in asynchronous fashion and in mechanical coordination with pockets in aninfeed star 28. The infeed star 28 is geared to the bottle table 32. Asthe infeed star 28 rotates, each container will travel along the radiusof the centering guide 30 to transfer, in mechanical coordination, to abottle support plate 34.

[0039] As the bottle table 32 rotates on its main bearing 44, containerson bottle plates 34 are carried to the first label application station36 (“head #1”). In the event that the application station 36 is to applya label, as a container passes the application station, a label will beapplied while the container continues to travel with the bottle table32. After label application, the container continues through an outsidebrush station 37 and an inside brush station 39. The brush stations 37and 39 wipe the label down onto the surface of the container. To assistin the wipe down of the labels, the bottle table 32 contains amechanical cam track with cam followers attached to the bottle plates.The cam track will cause the bottle plates to rotate during label wipedown through the brush stations. After label application and wipe down,the containers continue to travel to application station 38 (“head #2”).After the label application process is complete at label applicationstation 38 and related wipe down brush stations 37 and 39, the containercontinues onto discharge star 40. As the container approaches thedischarge star 40, which is geared to the bottle table 32, the containeris captured by the centering guide 30 to be transferred synchronously tothe discharge star 40. The container will travel along the radius of thecentering guide 30 to transfer from the discharge star 40 to a dischargeconveyor 22.

[0040] The position of the bottle turntable 32 is monitored by encoder274 (FIG. 6) which serves as a position feedback device. Such devices,generally include encoders and resolvers, as will be recognized by thoseskilled in the art. Such devices are, for convenience and by way ofexample, rather than by way of limitation, referred to herein as“encoders.”

[0041] A second general configuration 49 of a labeling system is shownin FIG. 2. This machine 49 is defined as a non-synchronous “inline”machine. Such inline machines are considered non-synchronous because theposition of the container is random with respect to known pre-definedpositions of the machine. The container-handling portion of machine 49consists of a conveyor 50 and, usually, container-engaging timing belts51, which are not part of this invention. It will be noted that themachine base encoder 53 is geared to the conveyor drive motor 54 and itsgearbox 52 and conveyor 50, such that the encoder 53 will make at least1 revolution per container.

[0042] Containers travel down the conveyor 50 in the direction indicatedby the arrow 56 near the infeed of the machine 49. The timing belts 51capture the containers 58 upon entry to the machine. The timing belts 51turn traveling generally in the same direction as conveyor 50, andmaintain position control of the containers. If desired, the timingbelts 51 may be used to manipulate the containers 58, for example, byrotating them, if required in a particular labeling sequence. Containers58 continue to travel into the machine 49 where the leading edge of eachcontainer 58 is detected by an electronic sensing device, which isusually a photoelectric cell, i.e., the bottle present sensor 60 and itsretroreflector 62. The electronic bottle present sensor 60 willelectronically identify the position of the container with respect tothe machine base encoder 53. Such identification or “position stamping”of the leading edge of the container establishes the physical positionof the container within the machine 49.

[0043] As container 58 continues into the machine towards theapplication station 68 (“head #1”), an electronic sensing device, the“position latch sensor” 64, detects the leading edge of the container 58and identifies or “position stamps” its location with respect to themachine encoder 53. This new position stamp enables correction ofposition error of the container 58 prior to labeling. Such errors may becaused by irregularities in the container configuration or dimensions,positioning on the machine base, etc. The container will then continueon to the label application station 68 (“head #1”). In the event thatthe application station 68 is to apply a label as a particular containerthat passes the application station, a label will be applied while thecontainer continues to travel with the conveyor 50. After labelapplication, the container continues through the brush station 70 whichwipes the label down onto the surface of the container 58 as thecontainer rotates across a brush.

[0044] On inline machines of this type, each label application head 68or 78 applies the same label, with one head being active and the otherin standby. If label application 78 (“head #2”) is active, while labelapplication head 68 is inactive, the sequence of operation remains thesame .

[0045] The label application head 68 or 78 is responsible for the motionof the web 80 and the transfer of the leading edge of a label 306 to thesurface of a container. As shown in FIGS. 3a and 3 b, web 79 whichcarries labels 80 enters a push-pull actuator assembly 82 shown indetail in FIG. 4c. The web 79 with labels 80 passes around a first idlerroller 180 and then proceeds around the smooth “push” capstan roller160. The web 79 with labels 80 leaves the push-pull unit and proceeds tospender arm assembly 81. The spender arm assembly 81 of a type know tothe art, is composed of the spender arm mounting bracket 88, spender armpivot bracket 90, spender arm pivot groove 92, spender arm upper rod 94,and lower rod 95, spender plate 96, spender plate foot 98, web guideassembly 100, and sensor mounting assembly 102.

[0046] The web 79 with labels 80 will pass across the front of thespender arm to and around the edge of the spender plate 96 therebycausing the labels to separate from the web, in know fashion. The web 79without labels will then continue on to and around another idler roller180 to the “pull” capstan 158. The web continues around the “pull”capstan 158 and continues on to the rewind dancer assembly rollers 108.After the web passes through the rewind dancer assembly 109, the web isrewound onto the rewind capstan 130, as a roll 146.

[0047] The rewind dancer is constructed of a series of rollers. One setof rollers are stationary, with the other set mounted to a dancer arm 13connected to a pivot shaft that is in turn connected to the rewindproportioning disk 110. An electronic signal generator 112 monitors theposition of the proportioning disk 110. As material leaves the push-pullassembly 84, the dancer arm 134 moves toward an open position to providefor storage of the material due to the force applied by the springtension device 111. The electronic signal generator 112 monitors theposition change of the proportioning disk 110 and outputs an analogelectronic signal to the motor drive 114 that feeds power to the DCunwind motor 116. The DC unwind motor 116 drives its gearbox 118 througha right angle shaft adapter 120 to drive the rewind capstan 130 and disk126. As the rewind capstan 130 rewinds material, the dancer arm 134 willmove towards a closed position thus causing the electronic signalgenerator 112 to reduce the analog signal to the rewind drive 114, thusreducing the speed of the motor 116.

[0048] The smooth “push” capstan 160 is attached to its drive gear 156(FIG. 4b), with the knurled “pull” capstan 158 being also attached to adrive gear 154. The servomotor 150 through the servomotor drive gear 152drives the gears 160 and 156.

[0049] Rubber coated nip rollers 164 and 162 have eccentric shafts thatare actuated by the nip pressure actuation levers 166 and 170. Spring172 applies tension to the “push” capstan nip pressure actuator lever170. This actuation causes the rubber coated nip roller 164 to applypressure to the smooth “push” capstan 160. Spring 168 applies tension tothe “pull” capstan nip pressure actuation lever 166. This actuationcauses the rubber coated nip roller 162 to apply pressure to the knurled“pull” capstan 158. The nips between the capstans 160 and 156 and therubber coated nip rollers 164 and 162, respectively, pinch the web 80such that there is no web slip across the knurled capstan 158, and thereis nip pressure controlled slip across the smooth capstan 160. Thecircumference of the smooth capstan 160 is slightly less than thecircumference of the knurled capstan 158. The drive gears for thecapstans 160 and 158 are the same size. As the servomotor 150 drives thecapstans 158 and 160 which move the web material across the spenderplate 96. The mismatch in circumference between the two capstans causesthe web to acquire tension. Web tension is dictated by the frictionalcomponent of the web 80 to the surface of the smooth capstan 160. Theapplied pressure of the rubber nip roller 164 dictates the quantity offriction to the smooth capstan 160. The web tension controls the peelangle of the label as it leaves the web, as the web is pulled around thesharp edge of the spender plate 96.

[0050] The unwind station shown in FIGS. 5a and 5 b is a stand-alonesystem that functions to provide web material 79 with labels 80 to thelabel application head 68 or 78 from a roll of label material. Theunwind station also provides an inertia buffer between the highacceleration web drive assembly 84, FIGS. 4a, 4 b and 4 c, and the largeinertial load of the material reel 204. A supply roll of unused labelmaterial 204 is mounted onto the unwind hub 202 and fixtured between theunwind disks 206. The web material 79 with labels 80 is pulled from roll204 by the nip 212 created by the nip roller assemble 214 and a rubbercoated unwind drive roller 216. The unwind drive roller 216 is connectedto the DC motor 219 and controlled by the electronic signaling device220. As the label application head dispenses labels, the web inertiabuffer gravity loop bobbin 220 will move up as web material is pulledfrom the buffer zone 218. An electronic signaling device 222 signals themotor 219 to turn on. The motor 219 drives the unwind drive roller 216which in turn pulls web material across the web guide idler roller 208and from the material roll 204. As the unwind drive roller 216 pullsmaterial from the material roll 204 into the buffer zone 218, the bobbin220 will move down until the electronic sensing device 222 detects thebobbin 220 thus turning the motor 219 off. The web tension brushes 234and 240 apply tension to the web 80 to stabilize the web path.

[0051] The machine base 20, shown, in elevation in FIG. 6, isresponsible for the flow of containers and their positions with respectto the application heads 36 and 38. A rotary encoder 274 geared to thebottle table 258 through main bull gear 260. The main bull gear 260 isdriven by main drive gear 262, which in turn is driven by gearbox 264and the main drive motor 266. The master encoder 274 is geared to themachine such that it makes one revolution per container. This isaccomplished by the correct selection of intermediary encoder gears 271and 272. The master encoder 274 provides feedback to the computercontrol systems on each containers physical location on the machine.

[0052] Bull gear 260 drives main bearing shaft 261, which in turn drivesthe rotating components including the bottle table assembly 258 andcarrier assembly 286. The main bearing housing 254 supports the rotatingcomponents and the non-rotating bottle table cam housing assembly 268.The containers in the machine are fixtured by the bottle plates 270 andthe centering bells 282 which are connected to the spring loadedcentering head 284, that is affixed to the carrier assembly 286. Ascontainers are processed through the machine, cam segments in the bottletable cam housing assembly 268, turn the containers to the correctkinematic positions that relate to the needs of the appropriate process.The kinematics include presentations and motion for labeling, label wipedown and other process such as inspection or coding. FIG. 6 includesexamples of the wipe down brush stations including the outside brushstation mount 269, the outside brush mount assembly 292, the wipe downbrush 290 and the inside brush mount 298, with its associated insidewipe down brush 296. The support columns 255 affix the non-rotatingportions of the machine head 280 and cam carrier housing 256. The brushstation bearing 294 is affixed to the outside of the machine base tableplate 250 and affix the inside brush stations to the non-rotationmachine base. The table plate support assembly 252 supports the machinetable plate 250.

[0053] The correlation of the encoder 274 to the machine base positionis defined as the machine master axis. On rotary machines, thecenterline distance between two containers is defined as one pitch.

[0054] Label application control is accomplished with a multiprocessorcomputer controlled servo system or motion control system. See FIG. 17.The motion control processor 520 with its corresponding servo amplifier524 and servomotor 526 are responsible for the actual motion of thelabel carrying web 80. Computer host processor 536 is responsible forthe system background tasks, internal machine process shift register andprocess rules. The container tracking processor 528 is responsible forall machine position controls.

[0055] As a container enters the machine an electronic signaling devicethe bottle present sensor 538 signals the container tracking processor528 that a container is entering the machine. The container trackingprocessor 528 electronically notifies the computer host processor 536that a container is present. The computer host processor 536 enters avalid container into the internal labeling process shift register. Asthe machine continues to rotate the z axis pulse of the master encoder522 providing electronic position signals to the container trackingprocessor 528, indicates the beginning of the next pitch cycle. Thecontainer tracking processor 528 will electronically indicate to thecomputer host processor 536 that a new pitch has started. The computerhost processor 536 will increment the internal labeling process shiftregister.

[0056] The labeling process shift register pitch increment process willcontinue as the container moves through the machine, until the containerreaches the label application head or a container/label positioncorrection sensor 534. In the event that the machine incorporates theuse of the optional container/label position correction sensor 308, theposition of a surface artifact such as a surface embossment on acontainer or a previously applied label 306 (FIG. 7), may be used as aposition reference for a container 58 which is, thus, independent of thecontainer fixtures 34 of the bottle table 32. When the beam 310 of theelectronic signaling device 308 is interrupted by the leading edge ofthe label 306 a signal is generated.

[0057] As seen in FIG. 17, the electronic signal generated by thecontainer/label position correction sensor 308 provides a positionlocating electronic signal or “stamp” to the container trackingprocessor 528 which relates to the exact position of the master encoder274. The stamped position of the master encoder 274, is thenelectronically compared to a preset application parameter in thecontainer tracking processor 528, which specifies the predicted positionof the tracked artifact thus generating a label contact point positionoffset.

[0058] The label contact point position offset is turn used to edit,electronically, the preset label contact point position parameter whichdictates the position on the container to which the label is to beapplied.

[0059] As the container proceeds to the position on the machine wherethe label is to be applied, the computer host processor 536 indicateselectronically to the container tracking processor 528 that a containeris to be labeled. As the container enters the labeling zone thecontainer tracking processor 528 electronically signals the motioncontrol processor 520 to begin the labeling process.

[0060] Referring to FIG. 10, the correlation of the motion controlsystem's internal position feedback; that is the servo loop closedaround the web drive motor feedback 411, with respect to the labelcarrying web position feedback 410, is defined as the labeling axis. Tosuccessfully complete the labeling process, the leading edge of eachlabel must applied to a precise position on the associated container andthe velocity of the label during application must match the surfacevelocity of the container.

[0061] Between label applications, the motion profile is required toprepare itself for the next labeling process as well as to correct forany registration error which may have occurred. The means of performingthe label application motion is through a position slaved move profile.That is, a move profile where the labeling axis position is based on theposition of the master axis encoder 400, of the machine base.

[0062] The servo loop of the labeling axis 412 is also a closed positionloop with the label's leading edge used as a registration mark where andin feedback is provided by electronic signaling device 414, theregistration sensor, which electronically position stamps the labelingaxis position at the point of the registration mark. This correction canonly be allowed to occur when the actual labeling process is not beingperformed in order to reduce label-to-container surface velocitymismatch which would result from attempted position correction duringlabel application.

[0063] The process of motion control referred to as position slavingrelies fundamentally on the use of a master axis and a slave axis. Themaster axis indicated by encoder 274 provides feedback for computing thecommanded position of the servo system of the slave or labeling axis.For each master position feedback unit or count, the slave axis isassigned a corresponding position. In the preferred example, the masterfeedback relates to the position of the machine base and is mechanicallygeared such that the feedback period is one machine pitch in length.Note that the period is measured in distance instead of time since thisis not a time based motion controller, but a position based controller.

[0064] Using a position slaved servo loop can be described, in general,by means of a block diagram of the basic components of the servo loop.Referring again to FIG. 10, we see that the main reference bench markthat dictates the motion is the position of the machine base encoder400. This position is signaled to processor 528 which utilizes aprofile-generating algorithm 402 such that the desired position of thelabel web is directly related to the machine base position based on thealgorithm's mathematical equation. The resulting motion profile ideallycan be generated and updated continually if the processing power of theservo controller is sufficient. If this is not possible, the motionprofile could also be generated, only upon receiving new setupinformation relating to the geometry of the label, web, container, ormachine which is stored in a look up table. The position slaved servosystem would then generate its motion profile by referencing the look uptable and utilizing the master feedback as an index to the table. Then,only the servo loop update and registration correction algorithmcalculation are performed in real time.

[0065] The remaining blocks in the diagram FIG. 10, describe a generaltype of high performance positioning servo system. The system utilizesthe torque controlled servo amplifier 404 closed around a proportional,integral, derivative (PID) servo loop 406 utilizing velocity andacceleration feedforward terms 408 to essentially eliminate followingerror in the system.

[0066] The position slaved motion profile, illustrated graphically inFIGS. 11 and 12, will implement a piecewise continuous functioncomprised of a minimum of three separate functions. These functions arerepresented by mathematical equations wherein the mathematicalexpression is a function of master feedback counts. The three basicportions of the illustrated complete function are: the label applicationfunction, which is based on the geometry of the machine and thecontainer; the pre-labeling move which primarily is the portion of themove that accelerates the web so that it has reached labeling velocityat the precise position of label placement on the surface of thecontainer while making a smooth transition to the label applicationfunction; the post-labeling move which handles the deceleration, therecording of any registration error, and the preparation of the webposition for the next label application, taking into account anyobserved registration error. It should also be noted that each of thebasic portions of the function may be comprised of multiplesub-functions. The total function of the move profile, f_(T) (i), isexpressed as follows:${f_{T}(i)} = {\sum\limits_{s = 1}^{n}{f_{s}(i)}}$

[0067] The plots shown in FIG. 11 and FIG. 12 illustrate such a motionprofile, which is comprised of 6 functions pieced together to form asingle continuous function.

[0068] The functions shown in FIGS. 11 and 12 of the curve denoted asf_(s) (0) 420 or 432 and f_(s) (5) 430 or 442 are regions where thelabel web axis is in servo lock but no motion is commanded. This wouldrepresent the position between containers where no labeling action isrequired.

[0069] The function denoted as f_(s) (1) 422 or 434 is the region ofacceleration of the web. The function denoted as f_(s) (2) 424 or 436represents a region of the curve where the labeling process isoccurring. As can be clearly seen in FIG. 12, the illustrated curve inthis case is a constant velocity function. This is not, however,generally the case for applications with complicated container geometryor special labeling requirements. Referring again to FIGS. 11 and 12,the function denoted as f_(s) (3) 426 or 438 is the region ofdeceleration of the web. The example shown utilized a sinusoidal profilegenerator in both the position (FIG. 11) and velocity (FIG. 12) domainof the profile.

[0070] The function denoted as f_(s) (4) 428 or 440 is optional asshown. Function f_(s) (4) 428 or 440 would be used to back the web up toallow for more web material to be made available in the event that theservo system does not have the acceleration capabilities to achieve thesurface velocity of the container within the constraints of the labelapplication travel distance. The label application travel distance iscomprised of the label length plus the gap between adjacent labels onthe web. A situation requiring f_(s) (4) presently occurs on pressuresensitive labeling machines where the application requires short labelson high surface velocity machines. Note that these functions can not beperformed on prior art velocity slaved system.

[0071] The example shown utilizes a sinusoidal profile generationutilizing a half period in the position domain as shown in FIG. 11.Region f_(s) (4) 428, 440 or f_(s) (5) 430, 442 will also be utilized asthe regions where registration error correction is accomplished. This isnecessary to account for the outer position loop 410, FIG. 10 to beclosed around the web material itself. It is desirable to perform thecorrection here since the label application has been completed and thesystem is simply preparing for the next application.

[0072] The concept of a position slaved motion control system has beendefined and its benefits have been explained. Next, the manner in whichthis motion control system relates to a pressure sensitive labelingprocess on a machine, will be explained. There are several basicbuilding blocks in the motion control system which are necessary forposition slaved control. They are shown in FIG. 17 as follows:

[0073] A motion control processor 520 that incorporates the use ofmicroprocessors capable of performing math intensive functions at a veryhigh rate is provided. Recent technological advances in microprocessorarchitectures has made available today, devices that provide the neededcomputational speed to perform complex mathematical position loopclosure. This technology includes digital signal processors such as theadvanced or modified Harvard architecture processor.

[0074] Because microprocessor technology continues to advance, thenature of the microprocessor is not directly a part of the inventionexcept in so far as the ability to process and calculate complexmathematical equations that relate to the position of a label to beapplied to a container has been made possible by the present level ofcomputer technology.

[0075] The motion control processor 520 must perform at a rate of atleast one position loop update every 125 microseconds for the pressuresensitive label application. This is necessary to maintain the placementaccuracy of the labels at very high linear web speeds and accelerations.

[0076] An encoder 274 or, alternatively, a rotary resolver, which servesas a feedback device on the machine base serves as the master feedbackposition index. This provides the index through which the motion controlprocessor 520 produces the position-slaved motion profiles.

[0077] A high performance web drive servomotor and amplifier 150, 404.The system must have a very high torque to inertia ratio to achieve thenecessary accelerations for a machine running in excess of 750 cyclesper minute.

[0078] A high speed input 532 into the motion controller 520, whichperforms a hardware capture of the slave axis position is necessary.This input should be able to identify the axis position in less than 20microseconds. This input is connected to the electronic signal device530 utilized for registration error correction of the labels on the webmaterial.

[0079] The container tracking processor 528 is responsible foridentifying the container position and the computer host processor 536is responsible for the process overhead, diagnostics, and rules. Thecontainer tracking processor 528 and the computer host processor 536will be discussed in detail later.

[0080] The manner in which these components of the system operatetogether in the system is as follows:

[0081] A known parameter, The point 362 on the container 58 where thelabel 306 must initially make contact for accurate placement is a knownparameter see FIG. 9 362. This is referred to herein as the contactpoint. This point is a predetermined position on the surface of acontainer that is subject to customer quality placement specifications.The drawing FIG. 9 illustrates a method to coordinate the selected labelcontact point to a fixed object that exists on the container 58. Withrespect to the application of multiple labels to a single container,using the example of a front label and back label application to asingle container, as indicated in FIG. 9, a problem exists with machinesthat use a master index machine reference position of the machine bottletable 350, with containers in pre-positioned holders 34 to determine theplacement of the labels 306 and 358.

[0082] Customer specifications on label placement generally refer to thedistance, edge to edge, between the two labels. Because the motioncontrol system incorporates the use of the machine master index signaledby encoder 274 to indicate the contact point 362 of the second label358, tolerance stackup occurs between the 2 labels during application.To achieve high accuracy placement between two labels on a container 58,the position of the first label applied 306 must be determined and usedto reference the position of the application of the second label 358.

[0083] The secondary position detection system shown in FIG. 7 adds animportant feature to the system. This function allows the labelapplication system to reference the position of an object such as label306 on the surface of the actual physical container 58, not atheoretical position on the container surface of a container positionedon the machine base, as is the case with other labelers.

[0084] The bottle table 32 is connected to the master encoder 274. Thebottle 58 is captured by the bottle plate 34. The label 306 leading edge310 is detected by an electronic signal generator 308. The electronicsignal is used to identify a corrected first label position which thusidentifies any devation or offset from the machine master index positionprior to label application.

[0085]FIG. 8 indicates this function on an inline machine with respectto container position. Inline machines generally have problems withaccurate container handing due to the fact that there are no fixtures tohold the container positions. In the case of timing belts, containerslip for any reason results in position error with respect to the masterencoder position.

[0086] Containers are moving in the machine on conveyor 320. Bottlepresent sensor 60 will electronically signal the master index positionof a container 72 when the container breaks the sensor beam 65. Thecontainers as they move through the system may develop error as to theirposition. The containers leading edge 72 is detected by an electronicsignal generator 64 when the container breaks sensor beam 65. Theelectronic signal is used to identify or “position stamp” a correctedfirst container position offset from the container's machine masterindex position just prior to label application.

[0087] The motion control processor uses the master encoder counts as anindex. This index acts as a time component which a non-position slavedmotion control algorithm uses to generate the move profile. In theposition slaved motion control algorithm, the motion control processordoes not have any time component in the move profile algorithm. Thisunique feature enables the contact point to be consistent through allspeed ranges. This is accomplished by virtue of the fact that theposition feedback index acts as a variable time component resulting invariable acceleration of the slave axis, which is driving the label web.As the machine speeds up, the feedback counts enter the motion controlprocessor at a higher rate, which in turn results in a higheracceleration rate. This variable acceleration in the position slavedmotion control system is crucial to repeatable label placement accuracyof the pressure sensitive labeling head. This is because the master andthe slave axes are linked together by an exact function relating theposition of the master to the position of the slave. Accuracy is thusmaintained at any machine speed up to the physical constraints detectedby maximum achievable acceleration.

[0088] As an example, we will utilize a simple move profile, which istrapezoidal as to velocity since this is a very common move. Becausethis is a position-based system, the profile will be defined as positionof the slave as a function of the master feedback index. For theexample, we will limit the scope to the first portion of the move, theacceleration, up to the constant velocity portion. If we integrate thetrapezoidal function shown in FIG. 13 with respect to the master index,the position profile is readily shown to be a second order polynomialwhere the acceleration occurs and a positive sloping line duringconstant velocity as shown in FIG. 14. Note that the units of thevertical axis is position of the slave axis and the units of thehorizontal axis is position of the master feedback index.

[0089] The following graph, FIG. 15, shows the relationship between themachine speed in containers per minute and the number of index counts ofthe master feedback versus time. We note the linear relationship of thetwo.

[0090] This relationship is fairly obvious, and is the reason why theposition slaved system works so well for the labeling process. Therelationship between the master feedback index and the slave position isa constant, and the relationship between machine speed and the masterfeedback index is constant. Therefore, the relationship between themachine speed and the slave, or labeling axis, is constant asillustrated in FIG. 16.

[0091] This results in the application of a pressure sensitive label bythe labeling head to an actual position, rather than to a theoreticalpoint in space.

[0092] To develop a position slaved move profile for an axis we havefour distinct constraints. These constraints are:

[0093] 1. The initial position.

[0094] 2. The final position.

[0095] 3. The initial velocity.

[0096] 4. The final velocity.

[0097] To solve for such a system, the system need to be mathematicallyrepresented by four coefficients 50 that there are enough constraints toexplicitly solve the equation.

[0098] To have the four coefficients a third order equation is used torepresent the position of the profile. The velocity of the profile isthen the first derivative of the position profile. Since the system willhave an upper limit on the acceleration, the second derivative willeventually be used in determining the viability of the specificapplication.

pos(i)=a·i ³ +a·i ² +c·i+d

[0099]${{vel}(i)} = {\left. {\frac{}{i}\left( {{a \cdot i^{3}} + {b \cdot i^{2}} + {c \cdot i} + d} \right)}\rightarrow{{vel}(i)} \right. = {{3 \cdot a \cdot i^{2}} + {2 \cdot b \cdot i} + c}}$

[0100] Boundary conditions are as follows: vel(0) = v0 Velocity at startof profile vel(N) = vf Velocity at end of profile pos(0) = 0 Initialposition pos(N) = accel_length Final position

[0101] These boundary condition result in four equations and fourunknowns.

[0102] Therefore the coefficients may be solved explicitly.${\begin{bmatrix}{v_{0} = {{3 \cdot a \cdot 0^{2}} + {2 \cdot b \cdot 0} + c}} \\{v_{f} = {{3 \cdot a \cdot N^{2}} + {2 \cdot b \cdot N} + c}} \\{0 = {{a \cdot 0^{3}} + {b \cdot 0^{2}} + {c \cdot 0} + d}} \\{{accel\_ length} = {{a \cdot N^{3}} + {b \cdot N^{2}} + {c \cdot N} + d}}\end{bmatrix}\quad {solve}},\left. \begin{bmatrix}a \\b \\c \\d\end{bmatrix}\rightarrow\begin{matrix}\begin{bmatrix}{{{root} \cdot v_{0}} = {{root} \cdot c}} \\{{{root} \cdot v_{f}} = {{root} \cdot \left( {{3 \cdot a \cdot N^{2}} + {2 \cdot b \cdot N} + c} \right)}} \\{0 = {{root} \cdot d}} \\{{{root}\quad {accel\_ length}} = {{root} \cdot \left( {{a \cdot N^{3}} + {b \cdot N^{2}} + {c \cdot N} + d} \right)}}\end{bmatrix}\end{matrix} \right.$

[0103] Given

v ₀ =a·0² +b·0+c  equation 1

v _(f) =a·N ² +b·N+c  equation 2

[0104] equation  3:$0 = {{\frac{a}{3}0^{3}} + {\frac{b}{2}0^{2}} + {c \cdot 0} + d}$equation  4:${accel\_ length} = {{\frac{a}{3} \cdot N^{3}} + {\frac{b}{2} \cdot N^{2}} + {c \cdot N} + d}$$\left. {{Find}\left( {a,b,c,d} \right)}\rightarrow\begin{bmatrix}\frac{3 \cdot \frac{\left( {{{- 2} \cdot {accel\_ length}} + {v_{0} \cdot N} + {N \cdot v_{f}}} \right)}{N^{3}}}{{- 2} \cdot \frac{\left( {{N \cdot v_{f}} - {3 \cdot {accel\_ length}} + {2 \cdot v_{0} \cdot N}} \right)}{N^{2}}} \\v_{0} \\0\end{bmatrix} \right.$

[0105] The boundary conditions are entered into the system.

v₀:=0

v_(f):=36

accel_length:=1273

n:=38

[0106] In general purpose applications we ensure that the velocity nevergoes negative, we will solve for the ‘b’ coefficient to be zero.${{Given}\quad 0} = {{- 2} \cdot \frac{\left( {{n \cdot v_{f}} - {{3 \cdot {accel\_ length}}\_} + {2 \cdot v_{0} \cdot n}} \right)}{n^{2}}}$

[0107] counts: Find(n)

[0108] N:=counts

[0109] N=106.08333333

[0110] Given

v ₀ =a·0² +b·0+c  equation 1

v_(f) =a·N ² +b·N+c  equation 2

[0111] equation  3:$0 = {{\frac{a}{3} \cdot 0} + {\frac{b}{2} \cdot 0^{2}} + {c \cdot 0} + d}$equation  4:${accel\_ length} = {{{\frac{a}{3} \cdot N^{3}} + {\frac{b}{2} \cdot N^{2}} + {c \cdot N} + {{d\begin{bmatrix}A \\B \\C \\D\end{bmatrix}}\text{:}}} = \left. {{{Find}\left( {a,b,c,d} \right)}\bullet}\rightarrow\begin{bmatrix}{6 \cdot \frac{\left( {{- 1273} + {18{counts}}} \right)}{{counts}^{3}}} \\{{- 6} \cdot \frac{\left( {{12{counts}} - 1273} \right)}{{counts}^{2}}} \\0 \\0\end{bmatrix} \right.}$

[0112] The registration portion of the profile is then calculatedi_(reg):=0, 1. . . N${{pos\_ cam}\left( i_{reg} \right)\text{:}} = {{\frac{1}{3} \cdot A \cdot \left( i_{reg} \right)^{3}} + {\frac{1}{2} \cdot B \cdot \left( i_{reg} \right)^{2}} + {C \cdot \left( i_{reg} \right)} + D}$

[0113] The physical properties of the move profile are calculated in thetime domain to determine if the required acceleration can physically beperformed by the selected motion control system. For now, we will usethe standard encoder with 1000 counts per pitch and let us use 300containers per minute to start.

[0114] enc_res:+1000

[0115] machine base encoder resolution

[0116] mach_speed:=300

[0117] desired machine base run speed

[0118] roller_dia:=20

[0119] drive roller diameter

[0120] motor_res:=8000

[0121] web drive motor encoder resolution${{pos\_ cam}{\_ mm}\left( i_{reg} \right)\text{:}} = {\frac{{pos\_ cam}{\left( i_{reg} \right) \cdot {roller\_ dia}}}{motor\_ res} \cdot p}$

[0122] The velocity of the profile is calculated by taking the firstderivative of the position profile and then the acceleration of theprofile by taking the second derivative of the position profile. Thefunctions are graphed out below. $\begin{matrix}{{{vel\_ cam}\left( i_{reg} \right)\text{:}} = \quad {\frac{}{i_{reg}}{pos\_ cam}\left( i_{reg} \right){{enc\_ res} \cdot}}} \\{\quad \frac{{mach\_ speed} \cdot {roller\_ dia} \cdot p}{60 \cdot {motor\_ res}}}\end{matrix}$

${{accel\_ cam}\left( i_{reg} \right)\text{:}} = {\frac{\quad}{i_{reg}}\quad {vel\_ cam}\left( i_{reg} \right)\quad {{enc\_ res} \cdot \frac{mach\_ speed}{60}}}$

[0123] accel_cam(N)=133264.73157412

[0124] Maximum acceleration (mm/sec2)

[0125] As was previously discussed, the position of the applied label tothe surface of a container in many customer applications is subject tospecified placement tolerances. A typical placement tolerance isplus/minus 0.5 millimeters.

[0126] The design specification for this machine exceeds 100,000millimeters per minute maximum container surface velocity. If the timedomain is calculated for the placement tolerance, we find that themaximum system accumulated latency equals 300 microseconds per 0.5millimeter of surface travel. To accomplish the final placementtolerance, it is found that the control system can contribute no morethan 50% of the maximum allowable error. The remaining error will comefrom material and mechanical system sources.

[0127] The two systems susceptible to critical time issues are themotion control system, FIG. 10, (also shown in component blocks 521,522, 524, 526, 530 in FIG. 19) and the position control processor 522,528, 534. The timing issues are critical for the digital signalsconnecting the position control processor to the motion controlprocessor. The specification for the maximum accumulated interruptservice routine latency of the motion control processor 520, FIGS. 17and 19, which includes high speed input reaction time, and motionalgorithm “math intensive task” completion is 125 microseconds. Thespecification for the position control processors position commandlatency is 25 microseconds. Because of the demanding requirements ofthis system, the following details relating to the position controlprocessor 520 are included herein.

[0128] With reference to FIG. 18 there is shown an PLS/Encoder FPGA 446which accepts signals from a quadrature encoder 464 and various sensors466, processes these signals, and in conjunction with a micro processor456, generates a set of control outputs 468.

[0129] The PLS/Encoder FPGA 446 takes advantage of the fact thatalthough a mechanical device may be operating at a high rate of speedthe time required for an encoder to move from one discrete position tothe next is relatively long when compared to the clock rate capabilityof high speed logic devices. The PLS/Encoder FPGA 446 uses the timebetween encoder steps to manipulate a set of control outputs 468 and towarn the system microprocessor 456 of impending significant events byuse of an interrupt signal 470. A more detailed description of theoperation of the PLS/Encoder FPGA 446 will follow.

[0130] The PLS/Encoder FPGA 446 is responsible for driving the outputs,472 and 474, which are scheduled to occur within the next full rotation(pitch) of the encoder. The system microprocessor is responsible forscheduling output events that must be delayed for one or more fullencoder rotations. The PLS/Encoder FPGA can provide multiple interrupts470 to the system micro processor 456 during a single encoder rotationsuch that the microprocessor 456 will have ample opportunity toconfigure the output control circuits of the PLS/Encoder FPGA whendelayed output events now falls within the current encoder rotation(pitch). Splitting the responsibility for the inter and intra pitchevents between the microprocessor 456 and the PLS/Encoder FPGA 446greatly reduces the processing requirements imposed on themicroprocessor 456 and increases the achievable system performance.

[0131] All of the signals which are input to the PLS/Encoder FPGA 446are connected at a header 440 and are sensed and ESD protected by aninput buffer 444. All of the signals which are output from thePLS/Encoder FPGA 446 are buffered and ESD protected by an output buffer442 and are made available at a header 440.

[0132] Also shown in FIG. 18 is a general-purpose microprocessor systemwhich consists of a microprocessor IC 456, FLASH type program memory452, and SRAM data memory 454. The microprocessor 456 works inconjunction with the PLS/Encoder FPGA 446 to generate the variouscontrol signals 468. The micro processor 456 also generates a clocksignal 450 which is used by the PLS/Encoder FPGA 446 to sample andfilter the sensor inputs 466 and the encoder inputs 464.

[0133] As shown in FIG. 18 a host system bus interface consisting of aninterface IC 458, the board address select switch 460, and a businterface connector 462 is provided. The interface IC 458 provides abridge between the host system bus and the native bus protocol of themicroprocessor 456. Although an ISA bus is indicated in FIG. 18, anyhost bus could be utilized by simply reconfiguring the function providedby the interface IC 458. In addition to the bus bridge function, theinterface IC 458 also implements a direct connection 448 to thePLS/Encoder FPGA 446, this provides high speed access to hardware basedinformation, such as encoder position, without requiring intervention bythe system micro processor 456.

[0134]FIG. 18 provides a more detailed view of the PLS/Encoder FPGA 446,in order to simplify this diagram all address decoding and chip selectfunctions which are performed in order to access the various hardwareresources have been omitted.

[0135] As shown in FIG. 18, all sensor 466, and encoder 464 signalswhich are input to the PLS/Encoder FPGA 446 are digitally filtered. Thesignals are filtered in order to minimize the detection of false signaltransitions due to the noise inherent in most installations. The DigitalFilter 480 consist of an N bit shift register connected to each input,where N is typically a small integer. The input signal is continuouslyshifted on the active edge of the filter clock 450, when all N bits ofthe shift register are at the same logic level the digital filter outputis switched to that level. The output level is held until all N bits ofthe shift register are detected to be at the opposite logic level. Thefilter clock used by the Digital Filter is sourced from the systemmicroprocessor 456 (FIG. 18). The Digital Filter 480 also synchronizesthe filtered outputs to the high frequency clock that drives all of theremaining logic of the PLS/Encoder FPGA 446.

[0136] The three encoder signals 464 that have been filtered 478 arepassed to the Encoder Processor 482. The Z_ph input is a reference pulsefrom the encoder which is active once during every rotation (pitch) ofthe encoder. The other two inputs, (A_ph & B_ph), are the quadraturesignals from the encoder, the phase relationship between these twosignals is used to determine the direction of encoder rotation, the edgetransitions of these two signals are used to derive an absolute angularposition measurement.

[0137] The Encoder Processor 482 tracks the A_ph and B_ph inputs, andmonitors the Z_ph input 478 in order to generate control signals for aPosition Counter 484 which tracks the absolute angular position of theencoder shaft. The operation of the control signals depends on thedirection of rotation, when the A_ph signal leads the B_ph signal by 90degrees the encoder is considered to be rotating in the forwarddirection, when B_ph leads A_ph by 90 degrees the direction of rotationis considered to be backwards.

[0138] The Encoder Processor 482 also contains a Z delay register, whichis loaded by the on board microcontroller 456. This function allows theset of position referenced system parameters to remain constant when anew encoder is installed. The new encoder will almost certainly beinstalled with a rotational offset relative to the old encoder. Therotational offset is compensated for by delaying the reset of theencoder position count by ‘n’ A_ph and B_ph edges after a Z_ph 478 inputis detected, ‘n’ is the value stored in the Z delay register. It shouldbe noted that up to one complete revolution of the encoder is requiredfor a new Z delay to become effective.

[0139] As previously noted, the filtered encoder signals 478 are used togenerate control signal to a Position Counter 484 which tracks theabsolute angular position of the encoder shaft. In order to track theangular position the counter 484 must be capable of counting up,counting down, clearing to zero, and loading to the maximum count value.The maximum count value is defined to be equal to the number of countsper revolution of the encoder times 4 A_ph and B_ph edges per encodercount. For example a 1000 count encoder will have a maximum count of4000 edges per revolution. The specific operation of the counter controlsignals generated by the Encoder processor 482 is as follows:

[0140] The Encoder Processor will issue a DOWN, or a LOAD if the Z delayhas expired, when one of the following is true:

[0141] B_ph is logic 0 and A_ph has a high to low transition.

[0142] B_ph is logic 1 and A_ph has a low to high transition.

[0143] A_ph is logic 0 and B_ph has a low to high transition.

[0144] A_ph is logic 1 and B_ph has a high to low transition.

[0145] The Encoder Processor will issue an UP, or a CLEAR if the Z delayhas expired, when one of the following is true:

[0146] B_ph is logic 0 and A_ph has a low to high transition.

[0147] B_ph is logic 1 and A_ph has a high to low transition.

[0148] A_ph is logic 0 and B_ph has a high to low transition.

[0149] A_ph is logic 1 and B_ph has a low to high transition.

[0150] The Encoder Processor 482 will issue a one system clock cyclewide NEW_COUNT signal 512 on any change in count, this is essentially alogical ‘OR’ of LOAD, CLEAR, UP, and DOWN.

[0151] A DIRECTION signal 524 is maintained by the Encoder Processor482, the signal will be at a logic low when the rotation direction isforward and logic high when the rotation direction is backward.

[0152] The Input Filter 480 and the Encoder Processor 482 provide a setof signals 478 which allow external motion control systems to haveaccess to the angular position information generated by the PLS/EncoderFPGA 446. The A, B, and Z outputs are copies of the encoder inputsdelayed by the Digital Input Filter 480, the Z_CLEAR output will goactive approximately 100 nS before an A or B output edge at which theEncoder Position Counter will be reset. The Z_CLEAR output is requiredsince the use of the Z delay feature precludes the use of the threeencoder phases to determine the zero reference point of the system.

[0153] As previously noted the control signals output from the encoderprocessor 482 are used to control a Position Counter 484 which maintainsa value which represents the absolute angular position of the encodershaft. Since the Position Counter 484 is changed at every edgetransition of both the A_ph and B_ph signals the angular positionmeasurement resolution is equal to one fourth of an encoder count. Forexample the angular position of a 1000 count per revolution encoder canbe tracked down to {fraction (1/4000)} of a revolution which is 0.0016radians (0.09°).

[0154] Since the number of counts per revolution of an encoder istypically not a power of two the Position Counter 484 must be designedto count down from zero to the maximum count and count up from themaximum count to zero. As previously noted the maximum count is fourtimes the number of counts per revolution of the encoder. This maximumcount values can either be hard wired into the hardware design orimplemented as a configurable register located within the PositionCounter 484 circuit.

[0155] The absolute angular position output 504 from the positioncounter 484 is used by the Clock Gen circuit 486 to generate a set ofposition based periodic signals. All of the signals output from theClock Gen circuit 486 are driven to logic 0 when the absolute angularposition 504 equals 0.

[0156] Two of the signals 476 generated by the Clock Gen circuit 486 areused by external control systems as position references, the pitch_clksignal provides one cycle per encoder revolution while the fine_clksignal provides 10 cycles per revolution.

[0157] Two of the signals issued by the Clock Gen circuit 486 are usedto interrupt the system micro controller 456 at various referencepositions within one revolution of the encoder. One of the signals 526will provide two interrupts per revolution while the second signal 528will provide five interrupts per revolution.

[0158] In addition to the two position based signals, 526 and 528,generated by the Clock Gen circuit 486, the PLS/encoder FPGA 446 cangenerate an interrupt to the micro processor 456 whenever the encoderposition 504 changes and when an active edge is detected at any of thesensor inputs 466. The interrupt signal 470 is generated by theTransition Detect circuit 488 when an active edge transition is detectedat any of the inputs 516. A status register is maintained within theTransition Detect circuit 488, the register 506 can be read by thesystem microprocessor 456 so that the source of the interrupt can bedetermined. Any of the inputs to the Transition Detect circuit 488 canbe masked in order to block the activation of the interrupt 470 for thatsource, this register is written by the system microprocessor 456.

[0159] When the system micro processor 456 reads data from thePLS/Encoder FPGA 446 the Data Buffer 494 routes the desired data fromthe PLS/Encoder FPGA's internal data bus to the system processor's databus based on the address used for the access. The system microprocessorcan either read the state of the Transition Detect 488 status register506, or the current encoder position 504 and the current encoderrotation direction 524.

[0160] Whenever the Encoder Processor 482 issues a NEW_COUNT signal 512to indicate that the encoder position has changed the List Selectcircuit 490 will sequence though a series of 24 addresses 518. The timerequired to scan through the 24 addresses and perform the operationsassociated with each determines the encoder resolution and rotationalspeed, which can be handled by the PLS/Encoder FPGA 446. For example ifthe PLS/Encoder FPGA 446 is operating at 25 Mhz and each addressrequires 8 clock cycles to process the address scan will take 7.7 uS, soa 4000 edge encoder (1000 cnts/rev) can be processed in abut 31 mSecwhich correlates to a rotational speed of about 1900 RPM. The precedingexample assumes no software over head for scheduling output events, itis expected that the actual obtainable rotational velocity will be aboutone half of the base hardware speed or 950 RPM for a 4000 edge encoder(1000 cnts/rev).

[0161] Each List Select address 518 will simultaneously select

[0162] The output group, PLS 496 or One Shot 498, to operate on.

[0163] The specific output within the selected group, one of 472 or 474.

[0164] The state to which a selected PLS output 472 is to be driven.

[0165] The on time (dwell) for a selected One Shot output 474.

[0166] The encoder position 508 at which the output operation is tooccur.

[0167] The encoder position at which the output event is to occur 508 isread from a List of Target Counts 492 and compared to the currentencoder position 504 by the Equality Compare circuit 500. If the currentposition 504 is equal to the target position 508, as indicated by signal521 becoming active. the selected output event will occur.

[0168] Each PLS output 472 is associated with two List Select addresses518 which access target encoder positions 508 stored in the List ofTarget Counts 492. One address selects the target encoder position 508at which the output 472 is to be driven active, the second addressselects the target encoder position 508 at which the output is to bedriven inactive.

[0169] Each One Shot output 474 is associated with a single List SelectAddress 518, this address selects the encoder position at which theoutput 474 is to be driven active from the List of Target Counts 492.The same address 518 also selects the on time (dwell) for the outputfrom the List of Target Counts 492.

[0170] The List of Target Counts 492 is stored in on chip dual port RAM.The write port is connected to the on board micro controller 456 bus,the values in the RAM can be updated on a random access basis at anytime. The read side of the dual port RAM is controlled by the ListSelect circuit 490, as previously described.

[0171] The One Shot Outputs control circuit 498 shown in FIG. 19requires that the an output be rearmed after each operation, this isaccomplished by having the system micro processor 456 rewrite the ontime (dwell) value for the particular one shot output 474. This was doneto allow the system microprocessor to make adjustments to the firingposition and on (dwell) time for these outputs 474 while operating atfull speed.

[0172] The Ksa16 Reg circuit 502 provides for direct access to theencoder position and several mailbox registers from the host backplaneinterface 458. This direct access scheme allows the host system toquickly access the most frequently required data without impacting theperformance of the system processor 456.

What is claimed is:
 1. Apparatus for applying, sequentially, a label toeach of a series of containers comprising, a machine base, means forloading a plurality of containers in sequence onto said machine base,means for holding and transporting said containers in spaced apartrelationship on said machine base, a label applicator device operativeto convey labels individually in succession in a manner such that eachlabel contacts an associated container transported to a positionproximate to the label applicator device, a servomotor for controllingthe position and velocity of said labels, a microprocessor operativelyconnected to control said servomotor, a position feedback device coupledto said machine base and to said microprocessor for continuallyproviding information to said microprocessor identifying the location ofeach of said containers on said machine base, a registration sensorpositioned adjacent said labels to identify the position of each saidlabel, said registration sensor being coupled to said microprocessor,whereby said microprocessor utilizes signals provided by said positionfeedback device and said sensor causes said servomotor to direct eachsuccessive label to be applied to a selected position on each successiveassociated container.
 2. Apparatus according to claim 1 wherein saidlabels are coated on one side with a pressure sensitive adhesive andsaid labels are carried on a transport carrier web from which they areseparated as they are applied to a container.
 3. Apparatus according toclaim 2 wherein said position feedback device comprises a rotary encoderwhich makes one revolution when said turntable rotates a distance equalto the distance between two adjacent containers.
 4. Apparatus accordingto claim 1 further comprising a sensor for detecting the presence of acontainer in a container holder of said turntable, said sensor beingoperatively connected to said microprocessor whereby said microprocessorcauses said label applicator to apply a label to a detected container.5. Apparatus according to claim 1 further comprising an encoder coupledto said servomotor for providing feedback to said microprocessoridentifying the position and velocity of said labels.
 6. Apparatusaccording to claim 1 wherein said machine base comprises a turntablewhich is driven rotationally about a vertical axis, and, a plurality ofcontainer holders arranged in circumferentially spaced apartrelationship on the turntable for transporting containers sequentiallyin a circular path.
 7. Apparatus according to claim 6 comprising meansfor turning said holders about a vertical axis.
 8. Apparatus accordingto claim 7 comprising means for conveying the containers from saidturntable after label application.
 9. Apparatus according to claim 1comprising a sensor for detecting container surface features such aslabels or embossments on the surface of the container or leading edge ofa container, said sensor being operatively connected to saidmicroprocessor said sensor identifying the position of said detectedfeatures.
 10. Apparatus according to claim 9 further comprising means tomodify the defined contact position of a label on the surface of anassociated container derived from information operatively received fromthe sensor.
 11. Apparatus according to claim 1 further comprising aposition feedback device coupled to said servomotor and providingfeedback to said microprocessor identifying the position of said labels.12. Apparatus according to claim 1 comprising means for generating atleast three separate functions to construct a motion profile, including,a first function, defining a pre-labeling move for accelerating the webat a calculated function of a detected position of the machine baseposition feedback device to achieve a defined contact position on anassociated container, a second function for applying each successivelabel which is a function of the machine base position and the geometryof the surface of said associated container during application, and, apost-labeling function for decelerating the carrier web material afterapplication of said label.
 13. Apparatus according to claim 1 furthercomprising a backup function for constructing a motion profile forbacking the web up prior to said acceleration function, therebyproviding additional acceleration distance for said carrier web.